package com.example.chamberlainserver.Service;

import com.example.chamberlainserver.Entry.Department;

import java.util.List;

/**
 * 部门服务接口
 */
public interface DepartmentService {
    /**
     * 获取所有部门
     */
    List<Department> getAllDepartments();
    
    /**
     * 根据ID获取部门
     */
    Department getDepartmentById(Integer id);
    
    /**
     * 根据部门代码获取部门
     */
    Department getDepartmentByCode(String code);
    
    /**
     * 添加部门
     */
    boolean addDepartment(Department department);
    
    /**
     * 更新部门
     */
    boolean updateDepartment(Department department);
    
    /**
     * 删除部门
     */
    boolean deleteDepartment(Integer id);
    
    /**
     * 获取部门下的所有用户ID
     */
    List<Integer> getUserIdsByDepartmentId(Integer departmentId);
    
    /**
     * 检查部门代码是否唯一
     */
    boolean isDepartmentCodeUnique(String code, Integer excludeId);
    
    /**
     * 检查部门名称是否唯一
     */
    boolean isDepartmentNameUnique(String name, Integer excludeId);
}